package placeincome

import (
	"yundian/internel/pkg/dingo"
)

// GetGppPlaceIncomeListReq 查询网点统计参数
type GetGppPlaceIncomeListReq struct {
	PlaceId      int    `gorm:"column:place_id" json:"placeId"`
	Month        string `gorm:"column:month" json:"month"`
	Year         string `gorm:"column:year" json:"year"`
	HotelId      string `gorm:"column:hotel_id" json:"hotelId"`
	ProjectLabel string `gorm:"column:project_label" json:"projectLabel"`
}

type GetGppPlaceIncomeListRes struct {
	SettlementMoney int64   `gorm:"column:settlement_money" json:"settlementMoney"`
	DeviceCount     int64   `gorm:"column:device_count" json:"deviceCount"`
	OrderCount      int64   `gorm:"column:order_count" json:"orderCount"`
	PlaceId         int64   `gorm:"column:place_id" json:"placeId"`
	Proportion      float64 `gorm:"column:proportion" json:"proportion"`
	PlaceName       string  `gorm:"column:place_name" json:"placeName"`
	HotelId         string  `gorm:"column:hotel_id" json:"hotelId"`
	Date            string  `gorm:"column:date_str" json:"date"`
}

type GetGppPlaceIncomeMonthListRes struct {
	GetGppPlaceIncomeListRes
	ProportionFee int64 `gorm:"column:proportion_fee" json:"proportionFee"`
	CostAmount    int64 `gorm:"column:cost_amount" json:"costAmount"`
}

// Analysis Model 统计临时表
//type OrdersstatisticsModel struct {
//	ID                 int        `gorm:"column:id" json:"id"`                            //
//	PlaceId            int        `gorm:"column:place_id" json:"placeId"`                 // 商户ID
//	PlaceName          string     `gorm:"column:place_name" json:"placeName"`             // 商户名称
//	PlaceCreateAt      dingo.Time `gorm:"column:place_create_at" json:"placeCreateAt"`    // 商户创建时间
//	SettlementMoney    int64      `gorm:"column:settlement_money" json:"settlementMoney"` // 结算金额 单位为：分          //
//	OrderCount         int64      `gorm:"column:order_count" json:"orderCount"`           // 订单数
//	SharedMode         string     `gorm:"column:shared_mode" json:"sharedMode"`           // 设备共享模型  pcl密码线充 cdb充电宝
//	CreateAt           dingo.Time `gorm:"column:create_at" json:"createAt"`               // 创建时间
//	Income             int64      `gorm:"column:income" json:"income"`                    // 分成后的收益
//	AgentUserId        int        `gorm:"column:agent_user_id" json:"agentUserId"`        // 代理商ID
//	DeviceCount        int        `gorm:"-" json:"deviceCount"`                           // 拥有设备数
//	UsageRate          string     `gorm:"-"  json:"usageRate"`                            // 使用率
//	Arpa               string     `gorm:"-"  json:"arpa"`                                 // 客单价
//	DayMonth           string     `gorm:"-"  json:"dayMonth"`                             // 按月统计时间
//	PlaceCost          int        `gorm:"-"  json:"placeCost"`                            // 商户成本
//	TimeDay            string     `gorm:"-"  json:"timeDay"`                              // 投放天数
//	MonthRecovery      string     `gorm:"-"  json:"monthRecovery"`                        // 回本周期
//	OtherMonthRecovery string     `gorm:"-"  json:"otherMonthRecovery"`                   // 回本周期
//
//}

// PlacestatisticsModel 网点统计表
type PlaceIncomeModel struct {
	ID                 int    `gorm:"column:id" json:"id"`                     //
	PlaceId            int    `gorm:"column:place_id" json:"placeId"`          // 商户ID
	SharedMode         string `gorm:"column:shared_mode" json:"sharedMode"`    // 设备共享模型  pcl密码线充 cdb充电宝
	IncomeDay          string `gorm:"column:income_day" json:"income_day"`     // 创建时间
	AgentUserId        int    `gorm:"column:agent_user_id" json:"agentUserId"` // 代理商ID
	UsageRate          string `gorm:"-"  json:"usageRate"`                     // 使用率
	Arpa               string `gorm:"-"  json:"arpa"`                          // 客单价
	DayMonth           string `gorm:"-"  json:"dayMonth"`                      // 按月统计时间
	PlaceCost          int    `gorm:"-"  json:"placeCost"`                     // 商户成本
	TimeDay            string `gorm:"-"  json:"timeDay"`                       // 投放天数
	MonthRecovery      string `gorm:"-"  json:"monthRecovery"`                 // 回本周期
	OtherMonthRecovery string `gorm:"-"  json:"otherMonthRecovery"`            // 回本周期

	PlaceCreateAt dingo.Time `gorm:"column:place_create_at" json:"placeCreateAt"` // 商户创建时间
	//Province       string     `gorm:"column:province" json:"province"`             // 用户所在省份
	//City           string     `gorm:"column:city" json:"city"`                     // 用户所在城市
	PlaceName      string `gorm:"column:place_name" json:"placeName"` // 商户名称
	DeviceCount    int64  `gorm:"-" json:"deviceCount"`               // 拥有设备数
	ActiveDevCount int64  `gorm:"-" json:"activeDevCount"`            // 有产设备量

	ScanCount int64 `gorm:"-" json:"scanCount"` // 扫码量
	//CompleteTotal int64 `gorm:"-" json:"completeCount"` // 扫码量
	//CancelTotal   int64 `gorm:"-" json:"cancelCount"`   // 扫码量

	OrderCount      int64 `gorm:"column:order_count" json:"orderCount"`           // 订单量
	SettlementMoney int64 `gorm:"column:settlement_money" json:"settlementMoney"` // 销售额
	Income          int64 `gorm:"column:income" json:"income"`                    // 分成后的收益
	CancelCount     int64 `gorm:"column:cancel_count" json:"cancelCount"`         // 当天撤销的订单条数
	CompleteCount   int64 `gorm:"column:complete_count" json:"completeCount"`     // 当天完成的订单条数
	DeviceTotal     int64 `gorm:"column:device_total" json:"deviceTotal"`         //获取设备总数

	HotelId string `gorm:"column:hotel_id" json:"hotelId"`

	//首单时间
	FirstOrderDate string `gorm:"column:first_order_date"  json:"firstOrderDate"`
	ScanCodeUser   int64  `gorm:"column:scan_code_user"  json:"ScanCodeUser"` //扫码用户
}

type PlaceIncomeAllModel struct {
	ID                 int    `gorm:"column:id" json:"id"`                     //
	PlaceId            int    `gorm:"column:place_id" json:"placeId"`          // 商户ID
	SharedMode         string `gorm:"column:shared_mode" json:"sharedMode"`    // 设备共享模型  pcl密码线充 cdb充电宝
	IncomeDay          string `gorm:"column:income_day" json:"income_day"`     // 创建时间
	AgentUserId        int    `gorm:"column:agent_user_id" json:"agentUserId"` // 代理商ID
	UsageRate          string `gorm:"-"  json:"usageRate"`                     // 使用率
	Arpa               string `gorm:"-"  json:"arpa"`                          // 客单价
	DayMonth           string `gorm:"-"  json:"dayMonth"`                      // 按月统计时间
	PlaceCost          int    `gorm:"-"  json:"placeCost"`                     // 商户成本
	TimeDay            string `gorm:"-"  json:"timeDay"`                       // 投放天数
	MonthRecovery      string `gorm:"-"  json:"monthRecovery"`                 // 回本周期
	OtherMonthRecovery string `gorm:"-"  json:"otherMonthRecovery"`            // 回本周期

	PlaceCreateAt dingo.Time `gorm:"column:place_create_at" json:"placeCreateAt"` // 商户创建时间
	//Province       string     `gorm:"column:province" json:"province"`             // 用户所在省份
	//City           string     `gorm:"column:city" json:"city"`                     // 用户所在城市
	PlaceName      string `gorm:"column:place_name" json:"placeName"`     // 商户名称
	DeviceCount    int64  `gorm:"device_count" json:"deviceCount"`        // 拥有设备数
	ActiveDevCount int64  `gorm:"active_dev_count" json:"activeDevCount"` // 有产设备量

	ScanCount int64 `gorm:"scan_count" json:"scanCount"` // 扫码量
	//CompleteTotal int64 `gorm:"-" json:"completeCount"` // 扫码量
	//CancelTotal   int64 `gorm:"-" json:"cancelCount"`   // 扫码量

	OrderCount      int64 `gorm:"column:order_count" json:"orderCount"`           // 订单量
	SettlementMoney int64 `gorm:"column:settlement_money" json:"settlementMoney"` // 销售额
	Income          int64 `gorm:"column:income" json:"income"`                    // 分成后的收益
	CancelCount     int64 `gorm:"column:cancel_count" json:"cancelCount"`         // 当天撤销的订单条数
	CompleteCount   int64 `gorm:"column:complete_count" json:"completeCount"`     // 当天完成的订单条数
	DeviceTotal     int64 `gorm:"column:device_total" json:"deviceTotal"`         //获取设备总数

	HotelId string `gorm:"column:hotel_id" json:"hotelId"`

	//首单时间
	FirstOrderDate string `gorm:"column:first_order_date"  json:"firstOrderDate"`
	ScanCodeUser   int64  `gorm:"column:scan_code_user"  json:"ScanCodeUser"` //扫码用户
}

type PlaceIncomeByDay struct {
	Total       int64  `gorm:"column:total" json:"total"`          // 累计收益
	PlaceId     int    `gorm:"column:place_id" json:"placeId"`     // 商户ID
	PlaceName   string `gorm:"column:place_name" json:"placeName"` // 商户名称
	DeviceCount int64  `gorm:"-" json:"deviceCount"`
}

// model init
func New() *PlaceIncomeModel {
	return &PlaceIncomeModel{}
}

// TableName
func (m *PlaceIncomeModel) TableName() string {
	return "place_income"
}

func (m *PlaceIncomeModel) Mutate(attrs ...PlaceIncomeAttr) *PlaceIncomeModel {
	PlaceIncomeAttrs(attrs).Apply(m)
	return m
}

//"s.place_id", "s.settlement_money", "DATE_FORMAT( FROM_UNIXTIME( o.create_at ), '%Y-%m-%d' ) as order_create_at",
//			"s.device_total", "s.income_day",
//			"s.agent_user_id", "s.place_name",
//			"s.income", "s.order_count", "s.complete_count",
//			"p.create_at as place_create_at",
//			"p.province", "p.city", "IF(p.hotel_id='',0, p.hotel_id) hotel_id"

// PlacestatisticsModel 网点统计表
type PlaceIncomeExportModel struct {
	ID          int    `gorm:"column:id" json:"id"`                     //
	PlaceId     int    `gorm:"column:place_id" json:"placeId"`          // 商户ID
	IncomeDay   string `gorm:"column:income_day" json:"income_day"`     // 创建时间
	DayMonth    string `gorm:"-"  json:"dayMonth"`                      // 按月统计时间
	AgentUserId int    `gorm:"column:agent_user_id" json:"agentUserId"` // 代理商ID

	PlaceCreateAt  dingo.Time `gorm:"column:place_create_at" json:"placeCreateAt"` // 商户创建时间
	Province       string     `gorm:"column:province" json:"province"`             // 用户所在省份
	City           string     `gorm:"column:city" json:"city"`                     // 用户所在城市
	PlaceName      string     `gorm:"column:place_name" json:"placeName"`          // 商户名称
	DeviceCount    int64      `gorm:"-" json:"deviceCount"`                        // 拥有设备数
	ActiveDevCount int64      `gorm:"-" json:"activeDevCount"`                     // 有产设备量

	OrderCreateAt   string `gorm:"column:order_create_at" json:"order_create_at"`  // 创建时间
	ScanCount       int64  `gorm:"scan_count" json:"scanCount"`                    // 扫码量
	OrderCount      int64  `gorm:"column:order_count" json:"orderCount"`           // 订单量
	SettlementMoney int64  `gorm:"column:settlement_money" json:"settlementMoney"` // 销售额
	Income          int64  `gorm:"column:income" json:"income"`                    // 分成后的收益
	CancelCount     int64  `gorm:"column:cancel_count" json:"cancelCount"`         // 当天撤销的订单条数
	CompleteCount   int64  `gorm:"column:complete_count" json:"completeCount"`     // 当天完成的订单条数
	DeviceTotal     int64  `gorm:"column:device_total" json:"deviceTotal"`         //获取设备总数

	HotelId string `gorm:"column:hotel_id" json:"hotelId"`

	ActiveStatus uint8 `gorm:"column:active_status" json:"active_status"` //激活状态 0未激活 1 已激活

	//首单时间
	FirstOrderDate string `gorm:"column:first_order_date"  json:"firstOrderDate"`
	ScanCodeUser   int64  `gorm:"column:scan_code_user"  json:"ScanCodeUser"` //扫码用户

	ActiveStatusDate uint8  `gorm:"column:active_status_date" json:"activeStatusDate"` //激活状态 0未激活 1 已激活
	ReturnStatus     uint8  `gorm:"column:return_status" json:"returnStatus"`
	LogisticsOrderNo string `gorm:"column:return_status" json:"logisticsOrderNo"`

	ReceiveTime string `gorm:"column:receive_time" json:"receiveTime"` //签收时间
	ReturnTime  string `gorm:"column:return_time" json:"returnTime"`   //退回时间
}

type SeparatePlaceTotal struct {
	Total   int64  `gorm:"column:total"json:"total"`
	Date    string `gorm:"column:date"json:"date"`
	PlaceId int    `gorm:"column:place_id"json:"placeId"`
}

type StatisticsPlaceOrders struct {
	OrderCount      int64  `gorm:"column:order_count" json:"orderCount"`           // 订单量
	SettlementMoney int64  `gorm:"column:settlement_money" json:"settlementMoney"` // 销售额
	CancelCount     int64  `gorm:"column:cancel_count" json:"cancelCount"`         // 当天撤销的订单条数
	IncomeDay       string `gorm:"column:income_day" json:"income_day"`            // 创建时间
	CompleteCount   int64  `gorm:"column:complete_count" json:"completeCount"`     // 当天完成的订单条数
	PlaceId         int    `gorm:"column:place_id" json:"placeId"`                 // 商户ID
}
